package main

import (
	"fmt"
	"os"
	"path/filepath"
)

func main() {
	fileName := "test.txt"
	dir, _ := os.Getwd()
	dirPath := filepath.Join(dir, fileName)
	file1, err := os.Open(dirPath)
	if err != nil {
		// 文件可能不存在，先创建一个文件
		fmt.Fprintf(os.Stderr, "ERROR: %v\n", err)
		return
	}
	file2, _ := os.Open(dirPath)  // 虽然打开的是同一个文件，但却是不同的文件描述符
	file3 := os.NewFile(file1.Fd(), dirPath)  // 可以通过文件描述符，获取File值
	fmt.Println(file1.Fd(), file2.Fd(), file3.Fd())
}
